package cn.datastruct.Seven;

/**
 * 哈希表实现思路：
 * 1、一个员工类
 * 1.1、成员变量：int id,String name,
 * 1.2、成员函数：构造函数
 * 2、员工类型的节点
 * 2.1、成员函数：head(头节点为null)
 * 2.2、成员函数：
 * add(emp emp) 增加员工
 * list()       打印hashtab
 * del(int id)  根据Id删除员工
 * 3、哈希表数组，数组存储员工表
 */

public class HashTabDemo {

}

class emp {
    //成员变量
    int id;
    String name;
    emp next;

    //构造函数
    public emp(int id, String name) {
        this.id = id;
        this.name = name;
        this.next = null;
    }

    //重写toString

    @Override
    public String toString() {
        return "emp{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

class EmpList{
    //成员变量
    emp head = null;

    //成员方法
    //添加员工
    void add(emp e){
        if(this.head == null){
            this.head.next = e;
        }else {
            emp p = this.head;
            while(p.next != null){
                p = p.next;
            }
            p.next = e;
        }
    }

    //删除员工
    void del(emp e){
        if(this.head == null)
            return;
        else {
            emp p = this.head;
            while(p.next.id != e.id)
                p = p.next;
            p.next = p.next.next;
        }
    }

    //打印员工
    void list(){
        emp p = head;
        while (p != null)
            System.out.println(p);
    }

}

class hashtab{
    emp[] hashArray;
}
